home *** CD-ROM | disk | FTP | other *** search
- package sun.util;
-
- import java.util.GregorianCalendar;
- import java.util.HashMap;
- import java.util.Locale;
- import java.util.Map;
- import java.util.ResourceBundle;
- import java.util.TimeZone;
- import sun.util.resources.LocaleData;
-
- public class BuddhistCalendar extends GregorianCalendar {
- private static final long serialVersionUID = -8527488697350388578L;
- private static final int buddhistOffset = 543;
- private transient int yearOffset = 543;
-
- public BuddhistCalendar() {
- }
-
- public BuddhistCalendar(TimeZone var1) {
- super(var1);
- }
-
- public BuddhistCalendar(Locale var1) {
- super(var1);
- }
-
- public BuddhistCalendar(TimeZone var1, Locale var2) {
- super(var1, var2);
- }
-
- public boolean equals(Object var1) {
- return var1 instanceof BuddhistCalendar && super.equals(var1);
- }
-
- public int hashCode() {
- return super.hashCode() ^ 543;
- }
-
- public int get(int var1) {
- return var1 == 1 ? super.get(var1) + this.yearOffset : super.get(var1);
- }
-
- public void set(int var1, int var2) {
- if (var1 == 1) {
- super.set(var1, var2 - this.yearOffset);
- } else {
- super.set(var1, var2);
- }
-
- }
-
- public void add(int var1, int var2) {
- int var3 = this.yearOffset;
- this.yearOffset = 0;
-
- try {
- super.add(var1, var2);
- } finally {
- this.yearOffset = var3;
- }
-
- }
-
- public void roll(int var1, int var2) {
- int var3 = this.yearOffset;
- this.yearOffset = 0;
-
- try {
- super.roll(var1, var2);
- } finally {
- this.yearOffset = var3;
- }
-
- }
-
- public String getDisplayName(int var1, int var2, Locale var3) {
- if (var1 != 0) {
- return super.getDisplayName(var1, var2, var3);
- } else if (var1 >= 0 && var1 < this.fields.length && var2 >= 1 && var2 <= 2) {
- if (var3 == null) {
- throw new NullPointerException();
- } else {
- ResourceBundle var4 = LocaleData.getDateFormatData(var3);
- String[] var5 = var4.getStringArray(this.getKey(var2));
- return var5[this.get(var1)];
- }
- } else {
- throw new IllegalArgumentException();
- }
- }
-
- public Map<String, Integer> getDisplayNames(int var1, int var2, Locale var3) {
- if (var1 != 0) {
- return super.getDisplayNames(var1, var2, var3);
- } else if (var1 >= 0 && var1 < this.fields.length && var2 >= 0 && var2 <= 2) {
- if (var3 == null) {
- throw new NullPointerException();
- } else if (var2 == 0) {
- Map var4 = this.getDisplayNamesImpl(var1, 1, var3);
- Map var5 = this.getDisplayNamesImpl(var1, 2, var3);
- if (var4 == null) {
- return var5;
- } else {
- if (var5 != null) {
- var4.putAll(var5);
- }
-
- return var4;
- }
- } else {
- return this.getDisplayNamesImpl(var1, var2, var3);
- }
- } else {
- throw new IllegalArgumentException();
- }
- }
-
- private Map<String, Integer> getDisplayNamesImpl(int var1, int var2, Locale var3) {
- ResourceBundle var4 = LocaleData.getDateFormatData(var3);
- String[] var5 = var4.getStringArray(this.getKey(var2));
- HashMap var6 = new HashMap(4);
-
- for(int var7 = 0; var7 < var5.length; ++var7) {
- var6.put(var5[var7], var7);
- }
-
- return var6;
- }
-
- private String getKey(int var1) {
- StringBuilder var2 = new StringBuilder();
- var2.append(BuddhistCalendar.class.getName());
- if (var1 == 1) {
- var2.append(".short");
- }
-
- var2.append(".Eras");
- return var2.toString();
- }
-
- public int getActualMaximum(int var1) {
- int var2 = this.yearOffset;
- this.yearOffset = 0;
-
- int var3;
- try {
- var3 = super.getActualMaximum(var1);
- } finally {
- this.yearOffset = var2;
- }
-
- return var3;
- }
-
- public String toString() {
- String var1 = super.toString();
- if (!this.isSet(1)) {
- return var1;
- } else {
- int var3 = var1.indexOf("YEAR=");
- if (var3 == -1) {
- return var1;
- } else {
- var3 += "YEAR=".length();
- StringBuilder var4 = new StringBuilder(var1.substring(0, var3));
-
- while(Character.isDigit(var1.charAt(var3++))) {
- }
-
- int var5 = this.internalGet(1) + 543;
- var4.append(var5).append(var1.substring(var3 - 1));
- return var4.toString();
- }
- }
- }
- }
-